<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class historialVentas extends CI_Controller {

    private $establecimiento;
    private $idUser;

    public function __construct() {
        parent::__construct();
        session_start();
        $this->estaLogueado();
        $this->load->model('categoria_producto_serviciom');
        $this->load->model('venta_producto_serviciom');
        $this->load->model('producto_serviciom');
        $this->load->model('impuestoM');
        $this->load->model('documentom');
        $this->load->model('paism');
        $this->load->model('usuariosm');
        $this->establecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
    }

    public function index() {
        $data = array();
        $this->loadData($data);
        $this->load->view('header', $data);
        $this->load->view('historialVentasV');
        $this->load->view('footer');
    }

    public function loadData(&$data) {
        $this->escapar($_GET);
        $data["tab"] = "historialVentas";
        $data["moneda"] = $_SESSION["establecimiento"]["moneda"];
        $filasPorPagina = 20;
        if (empty($_GET["page"])) {
            $inicio = 0;
            $paginaActual = 1;
        } else {
            $inicio = ($_GET["page"] - 1) * $filasPorPagina;
            $paginaActual = $_GET["page"];
        }
        if (!empty($_GET["desde"])) {
            $this->formatoFechaBD($_GET["desde"]);
        }
        if (!empty($_GET["hasta"])) {
            $this->formatoFechaBD($_GET["hasta"]);
        }
        $data['paginaActiva'] = $paginaActual;
        $cantidadVentas = $this->venta_producto_serviciom->contarVentas($this->establecimiento, $_GET);
        $cantidadVentas = $cantidadVentas [0]->cantidad;
        $data['cantidadVentas'] = $cantidadVentas;
        $data['cantidadPaginas'] = ceil($cantidadVentas / $filasPorPagina);
        $data['ventas'] = $this->venta_producto_serviciom->obtenerVentasTotales($this->establecimiento, $filasPorPagina, $inicio, $_GET);
        $data['resumenVentas'] = $this->venta_producto_serviciom->obtenerResumenVentasTotales($this->establecimiento, $_GET);
        if (!empty($_GET["categoria"])) {
            $data['productos'] = $this->producto_serviciom->listarProductos($_SESSION["establecimiento"]["id_establecimiento"], $_GET["categoria"]);
        }
        $data["impuestos"] = $this->impuestoM->obtenerImpuestos($_SESSION["establecimiento"]["id_establecimiento"]);
        $data['categorias'] = $this->categoria_producto_serviciom->obtenerCategorias($this->establecimiento);
        $data["documentos"] = $this->documentom->obtenerDocumentos();
        $data["usuarios"] = $this->usuariosm->getListaUsuarios($this->establecimiento);
        if (!empty($_GET["desde"])) {
            $this->formatoFechaVista($_GET["desde"]);
        }
        if (!empty($_GET["hasta"])) {
            $this->formatoFechaVista($_GET["hasta"]);
        }
        $data["paises"] = $this->paism->getAll();
        foreach ($data['ventas'] as $row) {
            $date = new DateTime($row->fecha);
            $row->fecha = $date->format('d/m/Y H:i:s');
        }
    }

    public function eliminarVenta() {
        $this->load->model('producto_x_ventam');

        $this->escapar($_POST);
        $flag = false;
        if (!empty($_POST["idVentaServicio"]) && !empty($_POST["idCategoriaProducto"]) && !empty($_POST["idServicio"])) {
            $idEstablecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
            $tieneInventario = $this->categoria_producto_serviciom->tieneInventario($_POST["idCategoriaProducto"]);
            if ($tieneInventario[0]->cantidad == 1) {
                $cantidad = $this->producto_x_ventam->obtenerDatos("cantidad", $_POST["idServicio"], $_POST["idVentaServicio"]);
                $cantidad = $cantidad[0]->cantidad * -1;
                $this->producto_serviciom->actualizarInventario($_POST["idServicio"], $cantidad);
            }
            $valorVenta = $this->venta_producto_serviciom->obtenerDatos("total_venta", $_POST["idVentaServicio"]);
            $this->lessCaja($valorVenta[0]->total_venta);
            $this->venta_producto_serviciom->eliminarVenta($_POST["idVentaServicio"], $idEstablecimiento);
            $flag = true;
        }

        if ($flag) {

            $_SESSION["mensaje"]["contenido"] = "Venta eliminada exitosamente.";
            $_SESSION["mensaje"]["tipo"] = "exito";
        } else {
            $_SESSION["mensaje"]["contenido"] = "La venta no se pudo eliminar.";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
        }
        header("location:historialVentas");
    }

    public function crearVenta() {
        $this->load->model('clientem');
        $this->load->model('producto_x_ventam');
        $this->escapar($_POST);
        if ($_POST["estatus"] == "Pendiente") {
            $_POST["modoPago"] = "";
        }

        if ($_POST['idCliente'] == '') {
            $this->clientem->crearClientePersona($_POST['identificacion'], $_POST['nacionalidad'], $_POST['tipoDocumento'], $_POST['nombre'], $_POST['primerApellido'], $_POST['segundoApellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['direccion']);
            $idCliente = mysql_insert_id();
        } else {
            $idCliente = $_POST['idCliente'];
            $this->clientem->actualizarClientePersona($_POST['idCliente'], $_POST['identificacion'], $_POST['nacionalidad'], $_POST['tipoDocumento'], $_POST['nombre'], $_POST['primerApellido'], $_POST['segundoApellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['direccion']);
        }

//        $this->clientem->crearClienteVentaExtra($_POST['nombre']);
//        $idCliente = mysql_insert_id();

        $idUser = $_SESSION["usuario"]["id_usuario"];
        // $isReserva=$_POST['idReservaCliente'];
        //$reservaId=($isReserva==NULL)? " NULL ":$isReserva;
        $impuesto = $_POST["total"] + $_POST["descuento"] - $_POST["subtotal"];
        $_POST["total"] = $_POST["total"] - $impuesto;
        $this->venta_producto_serviciom->insertarVentaExtra(NULL, $idCliente, $impuesto, "Extra", $_POST["descuento"], $_POST["total"], $idUser, $_POST["nota"], $_POST["estatus"], $_POST["modoPago"]);
        $idVenta = mysql_insert_id();
        $this->producto_x_ventam->insertarRegistro($this->establecimiento, $_POST["productoServicio"], $idVenta, $_POST["cantidad"]);
        $this->producto_serviciom->actualizarInventario($_POST["productoServicio"], $_POST["cantidad"]);
        if ($_POST["estatus"]=="Pagado" && $_POST["modoPago"] == "Efectivo") {
            $this->addCaja($_POST["total"]);
        }
        $_SESSION["mensaje"]["contenido"] = "Venta creada exitosamente.";
        $_SESSION["mensaje"]["tipo"] = "exito";
        header("Location:historialVentas");
    }

}
